#ifndef KITHARA_QT_CUSTOMIZED_OPERATION_H
#define KITHARA_QT_CUSTOMIZED_OPERATION_H

#include <cstdint>
#include <LinkControl.h>

#define SLAVE_COUNT 1

// 应用层和内核层共享内存的数据结构体
#pragma pack(1)     // 内核数据需要1字节对齐

// IOPDO数据结构体
typedef struct DemoPODIOData {
    uint32_t *IO_value_in;                // IO输入值
    uint32_t *IO_value_out;               // IO输出值
} DemoPODIOData;

typedef struct DemoShareData {
    KSHandle data_set_handle = NULL;            // 数据集句柄
    KSHandle master_handle = NULL;              // 主站句柄
    KSHandle slave_handles[SLAVE_COUNT];        // 从站句柄
    DemoPODIOData io_system_pod;                // 系统POD IO数据
    DemoPODIOData io_app_pod;                   // 应用POD IO数据
    bool EcatState_OP;                          // 总线是否打开
} DemoShareData;

#pragma pack()

#endif //KITHARA_QT_CUSTOMIZED_OPERATION_H
